﻿#define _CRT_SECURE_NO_WARNINGS 1


#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;


////力扣：： 376. 摆动序列
//class Solution {
//public:
//    int wiggleMaxLength(vector<int>& nums) {
//        int n = nums.size();
//        vector<int> f(n, 1), g(n, 1);
//        int result = 1;
//        for (int i = 1; i < n; i++)
//        {
//            for (int j = 0; j < i; j++)
//            {
//                if (nums[i] > nums[j])
//                    f[i] = max(g[j] + 1, f[i]);
//                else if (nums[i] < nums[j])
//                    g[i] = max(f[j] + 1, g[i]);
//            }
//            result = max(result, max(f[i], g[i]));
//        }
//
//        return result;
//    }
//};
//
//
////力扣 673. 最长递增子序列的个数
//class Solution {
//public:
//    int findNumberOfLIS(vector<int>& nums) {
//        int n = nums.size();
//
//        vector<int> len(n, 1), count(n, 1);
//        int retlen = 1, retcount = 1; // 记录最终结果
//        for (int i = 1; i < n; i++)
//        {
//            for (int j = 0; j < i; j++)
//            {
//                if (nums[j] < nums[i])
//                {
//                    if (len[j] + 1 > len[i])
//                    {
//                        len[i] = len[j] + 1;
//                        count[i] = count[j];
//                    }
//                    else if (len[j] + 1 == len[i])
//                    {
//                        count[i] += count[j];
//                    }
//                }
//            }
//            if (len[i] == retlen)
//                retcount += count[i];
//            else if (len[i] > retlen)
//                retlen = len[i], retcount = count[i];
//        }
//        for (auto x : len) cout << x << " ";
//        cout << endl;
//        for (auto x : count) cout << x << " ";
//
//        return retcount;
//    }
//};
//
//
//
////力扣:: 646. 最长数对链
//class Solution {
//public:
//    int findLongestChain(vector<vector<int>>& pairs) {
//        int n = pairs.size();
//        vector<int> dp(n, 1);
//
//        sort(pairs.begin(), pairs.end());
//        int result = 1;
//        for (int i = 1; i < n; i++)
//        {
//            for (int j = 0; j < i; j++)
//            {
//                if (pairs[j][1] < pairs[i][0])
//                {
//                    dp[i] = max(dp[j] + 1, dp[i]);
//                }
//            }
//            result = max(result, dp[i]);
//        }
//
//        for (auto x : dp) cout << x << " ";
//        return result;
//    }
//};
//
//
//// 力扣：：1218. 最长定差子序列
//class Solution
//{
//public:
//    int longestSubsequence(vector<int>& arr, int difference)
//    {
//        // 创建⼀个哈希表
//        unordered_map<int, int> hash; // {arr[i], dp[i]}
//        hash[arr[0]] = 1; // 初始化
//        int ret = 1;
//        cout << hash[arr[0]] << " ";
//        for (int i = 1; i < arr.size(); i++)
//        {
//            hash[arr[i]] = hash[arr[i] - difference] + 1;
//            cout << hash[arr[i]] << " ";
//            ret = max(ret, hash[arr[i]]);
//        }
//
//        return ret;
//    }
//};



#include"set.h"
#include"map.h"

int main()
{
	XmLife::map<string, int> s1;
	s1.Insert(make_pair("我", 1));
	s1.Insert(make_pair("s", 1));
	s1.Insert(make_pair("3", 1));
	s1.Insert(make_pair("2", 1));
	s1.Insert(make_pair("1", 1));
	s1.Insert(make_pair("6", 1));


	XmLife::set<int> s2;
	s2.Insert(1);
	s2.Insert(2);
	s2.Insert(3);
	s2.Insert(4);
	s2.Insert(5);

	system("pause");
}